using System;
using System.Collections.Generic;
namespace ServiceStack.Caching
{
	public interface IMemcachedClient : IDisposable
	{
		bool Remove(string key);
		void RemoveAll(IEnumerable<string> keys);
		object Get(string key);
		object Get(string key, out ulong lastModifiedValue);
		long Increment(string key, uint amount);
		long Decrement(string key, uint amount);
		bool Add(string key, object value);
		bool Set(string key, object value);
		bool Replace(string key, object value);
		bool Add(string key, object value, DateTime expiresAt);
		bool Set(string key, object value, DateTime expiresAt);
		bool Replace(string key, object value, DateTime expiresAt);
		void FlushAll();
		IDictionary<string, object> GetAll(IEnumerable<string> keys);
		bool CheckAndSet(string key, object value, ulong lastModifiedValue);
		bool CheckAndSet(string key, object value, ulong lastModifiedValue, DateTime expiresAt);
		IDictionary<string, object> GetAll(IEnumerable<string> keys, out IDictionary<string, ulong> lastModifiedValues);
	}
}
